模拟试题三
一 选择题(每题2分 共20分)
1.下面关于”A”的说法正确的是()
A 一个字符常量 B一个字符串常量
C 一个字符a D一个字符变量
2.使用字符串函数时,必须将()头文件包含在主程序中
A“stdio.h” B”string.h”
C “math.h” D”stdlib.h”
3.下面关于‘\\’的说法不正确的是()
A转义字符 B起换行作用
C能用于输出语句 D也能用于打印机
4.C程序是由()构成
A数据文件 B文本文件
C 函数 D主函数和其他函数
5.下列关于函数的说法哪些是错误的()
A可以单独执行
B可以嵌套调用
C可以定义在主函数之前或之后
D数组可以作为函数的参数
6.一般情况下,C语言是以()表示运算结果为逻辑真。
A F B T
C 1 D 0
7.以下变量名()是合法的。
A continue B $123
C lotus_2_3 D
8.一个C语言程序总是从()开始执行的。
A 主过程 B主函数
C子函数 D按书写顺序
9.PC机中,C语言的int,char,float所占用的内存为()字节。
A 1, 2, 4 B 2,2,2
C 2,1,4 D 2,2,4
10. 若k为float型,则下列程序执行结果为()
k=2.0;
while (k!=0)
{printf(“%d”,k);
k--;}
printf(“\n”);
A 无限多次 B 0次
C 1次 D 2次
二 按题目要求填空完善下列程序(每题6分,共24分)
1. 按逆序输出一个字符串
Void reversr(str)
Char str[];
{
int len.i;
char c;
len=①;
for (i=0;i<②;i++)
{ c=③;
str[i]=str[len-i-1];
④=c;
}
}
#include
main()
{
char string[256];
gets(string);
reverse(string);
puts(string);
}
2.输出Fibonacci数列的前15项,要求每行输出5项。
#define M 15
main()
{
int fib[M];
int i,
fib[0]=1;fin[1]=1;
for (i=2;i ①=fib[i-2]+②;
for(i=0;i { if ( ③ ) printf(“\n”);
④;
}
}
3. 用起泡法对10个按升序排序
main()
{
int a[10]={2,4,1,6,-1,34,56,78,-23,20};
int i,j,k;
for (j=0;j<① ;j++)
for (i=0; ② ;i++)
if ( ③ )
{ k=a[i];
④ ;
a[i+1]=k;
}
}
3. 输出100-200间的所有素数及其个数
main()
{
int m,k,I,n=0
for (m=101;m<=200;m++)
{ ①
for (i=2;i<=k;k++)
if ( ② ) break;
if ( ③ ) {printf(“%d “,m); n=n+1;}
}
printf(“%d”,n);
}
三 编程(共56分)
1.编写程序,求下面级数前n项中偶数项的和ES。在求和过程中,以第一个绝对值大于9999的项为末项,计算并输出和数ES。(其中^表示幂运算)
1!-2!+3!-4!+……+(-1)^(n-1)*n!+ …… (10分)
2.设计一个程序,对于从键盘输入的年、月、日,计算并输出相应是星期几。比如,1998年7月1日是星期三,要求输出形式为7—1—1998:<3>。 (12分)
[提示] 推算公式:
s=yy-1+(yy-1)/4-(yy-1)/100+(yy-1)/400+dd
w=s-7*(s/7)
其中yy是年份数,dd是yy年元旦到日期d的总天数,w是星期序数,w=0,1,2,…
3.编写程序:有两个正整数a和b,已知a*b=2048,求a、b各为何值时,a+b的值最小。(11分)
4.编写程序,找出一个4位数的完全平方数,该数减去1111后,结果仍是一个完全平方数。(完全平方数是一个整数,它是另一个整数的平方。例如25是5的平方,则25是一个完全平方数。)(10分)
5.已知在正文文件test.txt中存放有120个记录,每个记录中只有一个数。在文件中,从第一个数开始,每四个数为一组,第一个数为不同商场的代号(顺序号),其余三个数代表三类商品的营业额(万元)。编写程序,统计计算并向文件t2.dat输出各商场的总营业额(13分)